﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Configuration;
using System.Data;
using Infragistics.Windows.DataPresenter;

namespace ReclutamientoCosea
{
	/// <summary>
	/// Interaction logic for usrListCandidatos.xaml
	/// </summary>
	public partial class usrListCandidatos : UserControl
	{
        private static AppSettingsReader settings = new AppSettingsReader();
        private string idCandidato = "";
        private string idPersona = "";
        wCandidatos wCand;
        public event CerroVentana SeCerroVentana;

		public usrListCandidatos()
		{
			this.InitializeComponent();

            this.Loaded += new RoutedEventHandler(usrListCandidatos_Loaded);
            
		}

        void btnBuscar_Click(object sender, RoutedEventArgs e)
        {
            BusquedasCandidato();
        }

        void usrListCandidatos_Loaded(object sender, RoutedEventArgs e)
        {
            BuscaTodo();
        }

        void BuscaTodo()
        {
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
            string strSQL = "";
            try
            {
                strSQL += "select top 100 p.nombre1,p.nombre2,p.apellido1,p.apellido2,p.calle,p.colonia, ";
                strSQL += "p.municipio,p.cp,p.telefono1,p.celular1,p.fechanacimiento,p.ciudadnacimiento, ";
                strSQL += "p.paisnacimiento,p.comentarios,c.fechaalta AS Alta_Candidato, ";
                strSQL += "dbo.ObtenExpectativasProfesionales(c.idcandidato) as Perfil, p.idpersona,c.idcandidato  ";
                strSQL += "from persona p  ";
                strSQL += "inner join candidato c ";
                strSQL += "on p.idpersona = c.idpersona  ";
                strSQL += "where c.activo = 1  ";

                bd.bdConecta();

                DataSet ds = bd.dataSetConsulta(strSQL, "ca");
                dgCandidatos.DataSource = ds.Tables[0].DefaultView;
                //xamDataCandidatos.DataSource = ds.Tables[0].DefaultView;       


            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }

            finally
            {
                bd.bdCierra();
            }
        }

        void BusquedasCandidato()
        {
            if (rdoTodos.IsChecked == true)
            {
                BuscaTodo();
                return;
            }
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
            string strSQL = "";
            try
            {
                string valor = "" ;
                strSQL += "select p.nombre1,p.nombre2,p.apellido1,p.apellido2,p.calle,p.colonia, ";
                strSQL += "p.municipio,p.cp,p.telefono1,p.celular1,p.fechanacimiento,p.ciudadnacimiento, ";
                strSQL += "p.paisnacimiento,p.comentarios,c.fechaalta AS Alta_Candidato, ";
                strSQL += "dbo.ObtenExpectativasProfesionales(c.idcandidato) as Perfil, p.idpersona,c.idcandidato  ";
                strSQL += "from persona p  ";
                strSQL += "inner join candidato c ";
                strSQL += "on p.idpersona = c.idpersona  ";
                strSQL += "where ";
                if (rdoPalabra.IsChecked == true)
                {
                    strSQL += "isnull(nombre1, ' ') + isnull(nombre2, ' ') + ";
                    strSQL += "isnull(apellido1, ' ') + isnull(apellido2, ' ') + ";
                    strSQL += "isnull(celular1, ' ') + isnull(celular2, ' ') + ";
                    strSQL += "isnull(telefono1,' ') + isnull(telefono2, ' ') + ";
                    strSQL += "isnull(ciudadnacimiento, ' ') + isnull(paisnacimiento, ' ') + ";
                    strSQL += "isnull(comentarios, ' ') + isnull(dbo.ObtenExpectativasProfesionales(c.idcandidato), ' ')";
                    strSQL += "like '%{0}%' ";
                    valor = txtBusqueda.Text.Trim();
                }
                if (rdoAlta.IsChecked == true)
                {
                    strSQL += "convert(varchar,c.fechaalta,112) = '{0}' ";
                    valor = ((DateTime)dtFechaAlta.Value).ToString("yyyyMMdd");
                }
                if(rdoCumpleanos.IsChecked == true )
                {
                    strSQL += "convert(varchar,p.fechanacimiento,112) = '{0}'";
                    valor = ((DateTime)dtFechaNacimiento .Value).ToString("yyyyMMdd");
                }

                strSQL += "and c.activo = 1 ";

                bd.bdConecta();
                
                strSQL = string.Format(strSQL, valor);

                DataSet ds = bd.dataSetConsulta(strSQL, "ca");
                dgCandidatos.DataSource = ds.Tables[0].DefaultView;
                //xamDataCandidatos.DataSource = ds.Tables[0].DefaultView;       


            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }

            finally
            {
                bd.bdCierra();
            }
        }

        private void dgCandidatos_RecordActivated(object sender, Infragistics.Windows.DataPresenter.Events.RecordActivatedEventArgs e)
        {
            if (e.Record is DataRecord)
            {
                // Cast the record passed in as a DataRecord
                DataRecord myRecord = (DataRecord)e.Record;
                idCandidato = myRecord.Cells[17].Value.ToString();
                idPersona = myRecord.Cells[16].Value.ToString();                
            }

        }

        private void dgCandidatos_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            
            //wCand.objCandidato.Candto = Candidatos.GetCandidato(idCandidato);
            wCand = new wCandidatos();
            wCand.objCandidato.MuestraDatos(wCand.objCandidato.Candto = Candidatos.GetCandidato(idCandidato));
            wCand.objCandidato.btnNuevo.Visibility = Visibility.Hidden;            
            wCand.objCandidato.SeCerroVentana += (objeto) =>
            {
                wCand.Close();
            };
            wCand.Show();
        }

        private void btnSalir_Click(object sender, RoutedEventArgs e)
        {
            SeCerroVentana(true);
        }

        private void btnBuscar2_Click(object sender, System.Windows.RoutedEventArgs e)
        {
			BusquedasCandidato();
        }       
	}
}